package core

import "sync"

type ApiCache struct {
	ApiCache map[string]Api
}

var once sync.Once
var cache ApiCache

func GetCache() ApiCache {
	once.Do(func() {
		cacheMap := make(map[string]Api)
		cache = ApiCache{ApiCache: cacheMap}
	})
	return cache
}

func init() {
	GetCache()
}

func (apiCache ApiCache) Load() {

}

func (apiCache ApiCache) Put(key string, value Api) {
	cache = GetCache()
	if key == "" {
		return
	}
	cache.ApiCache[key] = value

}

func (apiCache ApiCache) Get(key string) (value Api) {
	cache = GetCache()
	if key == "" {
		return
	}
	return cache.ApiCache[key]

}

func (apiCache ApiCache) Del(key string) {
	cache = GetCache()
	if key == "" {
		return
	}
	delete(cache.ApiCache, key)
}
